package com.qfedu.service.impl;

import com.qfedu.dao.CartDao;
import com.qfedu.dao.CartItemDao;
import com.qfedu.dao.impl.CartDaoImpl;
import com.qfedu.dao.impl.CartItemDaoImpl;
import com.qfedu.model.Cart;
import com.qfedu.model.CartItem;
import com.qfedu.model.User;
import com.qfedu.service.CartService;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 王海龙
 * @date 2023-04-18
 */
public class CartServiceImpl implements CartService {

    private CartItemDao cartItemDao = new CartItemDaoImpl();
    private CartDao cartDao = new CartDaoImpl();
    @Override
    public Cart getCart(User user) {
        Cart cart = new Cart();
        int id = user.getId();
        cart.setId(id);
        //购物车最核心的是Map   购物项
        List<CartItem> cartItems =cartItemDao.findAll(user);
        if (cartItems==null||cartItems.size()==0){
            //只需要查询一下cart表记录是否存在
            Cart cart1 =  cartDao.findCartByUid(id);
            if (cart1==null){
                //没有建立绑定
                int row= cartDao.bindUser(user.getId()); //绑定关系建立
                if (row>0){
                    cart = cartDao.findCartByUid(user.getId());
                }else {
                    return null;
                }
            }else {

                return cart1;
            }
        }
        Map<Integer,CartItem> map = new LinkedHashMap<>();
        //遍历
        for (CartItem cartItem : cartItems) {
            cart.setCid(cartItem.getCid());
            map.put(cartItem.getId(),cartItem);
        }
        //将所有的购物项赋值
        cart.setItems(map);
        return cart;
    }
    @Override
    public Cart findCartByUid(int id1) {
        Cart cart = cartDao.findCartByUid(id1);
       return cart;
    }


}

